package com.sicnu.cheer.generalmodule.util;

import android.content.Context;


import com.sicnu.cheer.generalmodule.R;


import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 字符串操作工具包
 *
 * @author cheer
 * @version 1.0
 * @created 2016-11-11
 */
public class StringUtils {
    private final static Pattern emailer = Pattern.compile("\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
    private final static SimpleDateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    private final static SimpleDateFormat dateFormater2 = new SimpleDateFormat("yyyy-MM-dd");

    /**
     * 将字符串转位日期类型
     *
     * @param sdate
     * @return
     */
    public static Date toDate(String sdate) {
        try {
            return dateFormater.parse(sdate);
        } catch (ParseException e) {
            return null;
        }
    }

    /**
     * 判断给定字符串是否空白串。
     * 空白串是指由空格、制表符、回车符、换行符组成的字符串
     * 若输入字符串为null或""，返回true
     *
     * @param input
     * @return boolean
     */
    public static boolean isEmpty(String input) {
        return isEmpty(input, false);
    }

    /**
     * 判断给定字符串是否空白串。
     * 空白串是指由空格、制表符、回车符、换行符组成的字符串
     * 若输入字符串为null,"null"或""，返回true
     *
     * @param input
     * @return
     */
    public static boolean isEmptyWithNullString(String input) {
        return isEmpty(input, true);
    }

    /**
     * 判断给定字符串是否空白串。
     * 空白串是指由空格、制表符、回车符、换行符组成的字符串
     * 若输入字符串为null或空字符串，返回true
     *
     * @param input
     * @param nullStringIsEmpty "null"是否判断为空
     * @return
     */
    public static boolean isEmpty(String input, boolean nullStringIsEmpty) {
        if (input == null || "".equals(input))
            return true;
        if (nullStringIsEmpty && "null".equals(input.toLowerCase()))
            return true;

        for (int i = 0; i < input.length(); i++) {
            char c = input.charAt(i);
            if (c != ' ' && c != '\t' && c != '\r' && c != '\n') {
                return false;
            }
        }
        return true;
    }

    /**
     * 判断是不是一个合法的电子邮件地址
     *
     * @param email
     * @return
     */
    public static boolean isEmail(String email) {
        if (email == null || email.trim().length() == 0)
            return false;
        return emailer.matcher(email).matches();
    }
    /**
     * 返回对象字符串,如果参数为null则返回空字符串""
     *
     * @param object
     * @return
     */
    public static String toString(Object object) {
        String value = "";
        if (object != null) {
            value = object.toString();
        }
        return value;
    }
}